GtkImage: Reuse previously calculated baseline_align in draw()
authorAlexander Larsson <alexl@redhat.com>
Wed, 27 Mar 2013 08:42:43 +0000 (09:42 +0100)
committerAlexander Larsson <alexl@redhat.com>
Tue, 23 Apr 2013 03:58:08 +0000 (05:58 +0200)
No need to recalculate this every time we draw.

gtk/gtkimage.c

index ebbd126a68360c0ba16332f142456b4fcc328375..f21f227309dbd1e80845b362eb0f245e3f7d961e 100644 (file)
@@ -1462,22 +1462,8 @@ gtk_image_draw (GtkWidget *widget,
   if (baseline == -1)
     y = floor ((gtk_widget_get_allocated_height (widget) - height) * yalign) + border.top;
   else
-    {
-      PangoContext *pango_context;
-      PangoFontMetrics *metrics;
-      float baseline_align;
-
-      pango_context = gtk_widget_get_pango_context (widget);
-      metrics = pango_context_get_metrics (pango_context,
-                                          pango_context_get_font_description (pango_context),
-                                          pango_context_get_language (pango_context));
-      baseline_align =
-       (double)pango_font_metrics_get_ascent (metrics) /
-       (pango_font_metrics_get_ascent (metrics) + pango_font_metrics_get_descent (metrics));
-
-      y = CLAMP (baseline - height * baseline_align,
-                border.top, gtk_widget_get_allocated_height (widget) - height);
-    }
+    y = CLAMP (baseline - height * gtk_image_get_baseline_align (image),
+              border.top, gtk_widget_get_allocated_height (widget) - height);
 
   if (gtk_image_get_storage_type (image) == GTK_IMAGE_ANIMATION)
     {